﻿using System;
using System.Collections.Generic;

namespace MVCQuick.Framework.Tests
{
    public class Album : EntityBase
    {
        public string Title { get; set; }
        public decimal Price { get; set; }        
        public string AlbumArtUrl { get; set; }
        public Genre Genre { get; set; }
        public Artist Artist { get; set; }

        public void Add()
        {

        }
    }

    public class Genre : EntityBase
    {
        public string Name { get; set; }
        public string Description { get; set; }
        public IList<Album> Albums { get; set; }

    }

    public class Artist : EntityBase
    {
        public string Name { get; set; }
        public Address Address { get; set; }
        public IList<Album> Albums { get; set; }
        public IDictionary<String, String> Settings { get; set; }
    }

    public class User : EntityBase
    {
        public string Username { get; set; }
        public string Email { get; set; }
        public string Password { get; set; }
        public IList<Role> Roles { get; set; }
        public User() { Roles = new List<Role>(); }
    }

    public class Role : EntityBase
    {
        public string Name { get; set; }
        public string Description { get; set; }
        public IList<User> Users { get; set; }
        public Role() { Users = new List<User>(); }
    }

    public class Address : IValueObject
    {
        public string City { get; set; }
        public string Country { get; set; }
        public string State { get; set; }
        public string Street { get; set; }
        public string Zip { get; set; }
    }
}
